#ifndef __CALISTH__
#define __CALISTH__


struct lklist;

typedef struct lklist
{
	struct lklist *prev;
	struct lklist *next;
	int udata;	
//	union {
	void* arg;
//	};
	unsigned int seed;
} lklist;


typedef struct
{
	lklist* pstart;
	int count;
} lkque;

void lkinit(lklist* phead);
void lkins(lklist *l, lklist *item);
void lkadd(lklist *l, lklist* item);
void lkdel(lklist *pitem);
void *lknext(lklist* p);
lklist* lkpop_head(lklist *p);
lklist* lkpop_tail(lklist* p);
void lkqueInit(lkque* ptr);
void lkqueAdd(lkque* q, lklist* item);
lklist* lkqueGet(lkque* q);



#endif
